#ifndef __MAPMOD_H__
#define __MAPMOD_H__

#ifdef __cplusplus
extern "C" {
#endif

#	include	<linux/ioctl.h>
#	include	<linux/types.h>

#ifdef __cplusplus
};
#endif

struct UserPages {
	void *  ptr;		// memory pointer aligned oh PAGE_SIZE boundary
	size_t	nr_pages;	// size of buffer (PAGE_SIZE granularity)
}__attribute__((__packed__));

#define		MAPMOD_IOC_MAGIC		'm'
#define		MAPMOD_IOC_MAXNR		8

#define		MAPMOD_IOCTL_SET_BUFFER		_IOW ( MAPMOD_IOC_MAGIC, 1, struct UserPages )
#define		MAPMOD_IOCTL_RESET_BUFFER	_IO ( MAPMOD_IOC_MAGIC, 2 )

#define		MAPMOD_IOCTL_ROTATE_START	_IO ( MAPMOD_IOC_MAGIC, 3 )
#define		MAPMOD_IOCTL_ROTATE_STOP	_IO ( MAPMOD_IOC_MAGIC, 4 )

#define		MAPMOD_IOCTL_SET_RPM2		_IO ( MAPMOD_IOC_MAGIC, 5 )
#define		MAPMOD_IOCTL_SET_RPM4		_IO ( MAPMOD_IOC_MAGIC, 6 )
#define		MAPMOD_IOCTL_SET_RPM6		_IO ( MAPMOD_IOC_MAGIC, 7 )
#define		MAPMOD_IOCTL_SET_RPM12		_IO ( MAPMOD_IOC_MAGIC, 8 )

//#define		MAPMOD_IO_SET_HETER			_IOW ( MAPMOD_IOC_MAGIC, 6, __u32 )
//#define		MAPMOD_IO_GET_HETER			_IOR ( MAPMOD_IOC_MAGIC, 7, __u32 )
//#define		MAPMOD_IO_SET_SONDAGE		_IOW ( MAPMOD_IOC_MAGIC, 12, struct sondage )

#endif // __MAPMOD_H__
